iT邦幫忙

2024 iThome 鐵人賽

DAY 25
0
Python

一起來用 Snakify 練練手系列 第 25

【一起來用 Snakify 練練手】Day25 Lesson 11 概念

  • 分享至 

  • xImage
  •  

字典(Dictionaries)

在 Python 中,字典(dictionary)是一種以鍵值對(key-value pairs)形式存儲數據的資料結構。每個鍵(key)都唯一地對應一個值(value),這使得字典非常適合快速查找數據。與列表不同,字典是無序的(在 Python 3.7 之後,字典是有序的,但無法依靠索引來訪問元素)。字典中的鍵必須是不可變的數據類型,例如字串、數字或元組,而值可以是任意類型。

1. 字典的定義與創建

字典可以使用花括號 {}dict() 函數來創建。每個鍵和值之間用冒號 : 分隔,不同的鍵值對用逗號 , 分隔。

範例:

# 使用花括號創建字典
student = {
    "name": "Alice",
    "age": 25,
    "major": "Computer Science"
}

# 使用 dict() 創建字典
student2 = dict(name="Bob", age=22, major="Mathematics")

在這裡,student 字典包含了學生的姓名、年齡和主修學科。

2. 訪問字典中的元素

可以通過鍵來訪問字典中的值,語法為 dictionary[key]。如果鍵不存在,將會引發 KeyError

範例:

print(student["name"])  # 輸出:Alice
print(student["age"])   # 輸出:25

若不確定鍵是否存在,建議使用 get() 方法,該方法在鍵不存在時返回 None 或一個指定的默認值。

範例:

print(student.get("major"))      # 輸出:Computer Science
print(student.get("grade", "N/A"))  # 輸出:N/A,因為 "grade" 鍵不存在

3. 修改字典中的元素

字典是可變的,因此可以修改現有的值或添加新的鍵值對。

修改值:

student["age"] = 26
print(student)  # 輸出:{'name': 'Alice', 'age': 26, 'major': 'Computer Science'}

添加新的鍵值對:

student["grade"] = "A"
print(student)  # 輸出:{'name': 'Alice', 'age': 26, 'major': 'Computer Science', 'grade': 'A'}

4. 刪除字典中的元素

可以使用 del 語句或 pop() 方法來刪除字典中的鍵值對。

使用 del 刪除鍵值對:

del student["major"]
print(student)  # 輸出:{'name': 'Alice', 'age': 26, 'grade': 'A'}

使用 pop() 方法刪除鍵值對:

pop() 方法會刪除並返回被刪除的值。

age = student.pop("age")
print(age)      # 輸出:26
print(student)  # 輸出:{'name': 'Alice', 'grade': 'A'}

5. 字典的迭代

可以使用 for 迴圈來遍歷字典中的鍵或值。keys() 方法返回所有的鍵,values() 返回所有的值,而 items() 則返回鍵值對的元組列表。

遍歷鍵:

for key in student:
    print(key)  # 輸出:name, grade

遍歷值:

for value in student.values():
    print(value)  # 輸出:Alice, A

遍歷鍵值對:

for key, value in student.items():
    print(key, ":", value)

輸出結果:

name : Alice
grade : A

6. 字典的常用方法

字典具有多種內建方法,這些方法可以用來操作字典。

  • keys():返回字典中的所有鍵。
  • values():返回字典中的所有值。
  • items():返回字典中的所有鍵值對(元組形式)。
  • update():用來更新字典中的內容,可以將另一個字典的鍵值對合併到當前字典中。
  • clear():清空字典中的所有元素。

範例:

student.update({"major": "Data Science", "age": 27})
print(student)  # 輸出:{'name': 'Alice', 'grade': 'A', 'major': 'Data Science', 'age': 27}

student.clear()
print(student)  # 輸出:{}

7. 字典生成器

就像列表生成器一樣,我們也可以使用字典生成器來快速創建字典。生成器語法可以根據需求動態創建字典。

範例:創建平方數字典

squares = {x: x**2 for x in range(1, 6)}
print(squares)  # 輸出:{1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

這段代碼使用字典生成器創建了一個包含 1 到 5 的數字及其平方值的字典。

8. 字典的應用

字典廣泛應用於需要快速查找資料的情況,例如處理用戶資料、統計數據等。它還非常適合存儲結構化數據,如 JSON 資料格式。

範例:統計字串中每個字符出現的次數

text = "hello world"
char_count = {}

for char in text:
    if char in char_count:
        char_count[char] += 1
    else:
        char_count[char] = 1

print(char_count)

輸出結果:

{'h': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 1, 'w': 1, 'r': 1, 'd': 1}

這段程式碼統計了字串中每個字符出現的次數,並將結果存儲在字典中。

9. 總結

字典是 Python 中一種強大且靈活的資料結構,適合存儲鍵值對形式的數據。通過字典,我們可以高效地查找、更新或刪除數據。此外,字典的內建方法提供了多種操作和處理數據的方式。理解並掌握字典的使用,能夠幫助我們在程式設計中處理更複雜的數據結構和應用場景。

你➕1了沒 台灣首發晶片設計教材要開始募資啦
趕快點擊去了解 👉 https://wlinny.com


上一篇
【一起來用 Snakify 練練手】Day24 Lesson 10 練習題參考解答
下一篇
【一起來用 Snakify 練練手】Day26 Lesson 11 練習題參考解答
系列文
一起來用 Snakify 練練手30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言